package com.doit.spark.practise

import org.apache.log4j.{Level, Logger}
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

/**
 * @DATE 2022/1/8/21:58
 * @Author MDK
 * @Version 2021.2.2
 * */
object C02_MakeRDD {
  Logger.getLogger("org").setLevel(Level.ERROR)
  def main(args: Array[String]): Unit = {
    // this.getClass.getSimpleName 类名
    // 环境
    val conf: SparkConf = new SparkConf()
      .setMaster("local[*]")  // 使用本机器的所有核数 16
      .setAppName(this.getClass.getSimpleName)

    val sc = new SparkContext(conf)
    val arr = Array(1,2,3,4)
    val mp = Map[String,Int](("wb",23),("duanlang",34))
    // 创建RDD
    val rdd1: RDD[Int] = sc.parallelize(arr,4)
    // 创建RDD
    val rdd2: RDD[(String, Int)] = sc.parallelize(mp.toList,7)
    val size1: Int = rdd1.partitions.size
    val size2: Int = rdd2.partitions.size

    /**
     * 因为我的机器是16Core ,本地集合的RDD 默认就是机器的所有的可用核数为分区数
     */
    println(size1)// 4分区-->4Task
    println(size2)// 7分区-->7Task

    rdd2.collect()
    sc.stop()

  }

}
